
{/* 
<div class="testing">
    <ul class="lang">
        <li class="lang-javascript">JavaScript</li>
        <li class="lang-python">Python</li>
        <li class="lang-lua">Lua</li>
    </ul>

    <ul class="lang1">
    <li class="lang-javascript">JavaScript</li>
    <li class="lang-python">Python</li>
    <li class="lang-lua">Lua</li>
</ul>
</div> 
*/}


//### 层级选择器（Descendant Selector）

//准确获取一个JavaScript标签
var  JavaScript = $("div.testing li.lang-javascript");
console.log(JavaScript);

//如果改下结构，在一个与JavaScript的父级有同级关系的ul下也有一个标签与<li> avaScript </li> 一模一样
//那么按上面的方法就会找到两个 JavaScript 标签

var  JavaScript2 = $("div.testing li.lang-javascript");
console.log(JavaScript2);

//所以，怎么办呢？
//是不是得逐层找下来?
var  JavaScript3 = $("div.testing ul.lang1 li.lang-javascript");
console.log(JavaScript3);

//发现逐层查找的确可以很准确的找到目标标签







// ### 子选择器（Child Selector）

//子选择器`$('parent>child')`类似层级选择器，但是限定了层级关系必须是父子关系
//准确获取 ul.lang 的 Python标签
var Python = $("div.testing>li.lang-python")
console.log(Python);

//发现找不到标签,为什么？因为 div.testing>li.lang-python 之间不是父子关系, ul.lang>li.lang-python 才是父子关系

var Python2 = $("div.testing ul.lang>li.lang-python")
console.log(Python2);//最终找到了






// ### 过滤器（Filter）

// 过滤器一般不单独使用，它通常附加在选择器上，帮助我们更精确地定位元素。观察过滤器的效果：

console.log($('ul.lang li')); //                选出JavaScript、Python和Lua 3个节点
console.log($('ul.lang li:first-child')); //    仅选出JavaScript
console.log($('ul.lang li:last-child'));//      仅选出Lua
console.log($('ul.lang li:nth-child(2)')); // 选出第N个元素，N从1开始);
console.log($('ul.lang li:nth-child(even)')); // 选出序号为偶数的元素);
console.log($('ul.lang li:nth-child(odd)')); // 选出序号为奇数的元素);




// ### 表单相关

// 针对表单元素，jQuery还有一组 特殊的选择器(只能用在<from></from>)：
// ```
// :input：可以选择<input>，<textarea>，<select>和<button>；

// :file：可以选择<input type="file">，和input[type=file]一样；

// :checkbox：可以选择复选框，和input[type=checkbox]一样；

// :radio：可以选择单选框，和input[type=radio]一样；

// :focus：可以选择当前输入焦点的元素，例如把光标放到一个<input>上，用$('input:focus')就可以选出；

// :checked：选择当前勾上的单选框和复选框，用这个选择器可以立刻获得用户选择的项目，如$('input[type=radio]:checked')；

// :enabled：可以选择可以正常输入的<input>、<select> 等，也就是没有灰掉的输入；

// :disabled：和:enabled正好相反，选择那些不能输入的。
// ```
// 此外，jQuery还有很多有用的选择器，例如，选出可见的或隐藏的元素：
// ```
// $('div:visible'); // 所有可见的div
// $('div:hidden'); // 所有隐藏的div







